package componentesAux;


import javafx.beans.property.SimpleIntegerProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.collections.FXCollections;
import javafx.collections.ObservableList;
import javafx.scene.control.TableColumn;
import javafx.scene.control.TableView;
import javafx.scene.control.cell.PropertyValueFactory;

public class CreadorTablas {
	public CreadorTablas(){
		
	}
	
	public TableView crearTablaClientes(ObservableList<CreadorTablas.Cliente> datos){
		TableView<Cliente> tabla = new TableView<Cliente>();
		
		TableColumn<Cliente, String> columna1 = new TableColumn<Cliente,String>("Nombre");
		columna1.setCellValueFactory(new PropertyValueFactory<Cliente,String>("nombre"));
		
		TableColumn<Cliente, String> columna2 = new TableColumn<Cliente,String>("Apellido");
		columna2.setCellValueFactory(new PropertyValueFactory<Cliente,String>("apellido"));
		/*
		ObservableList<Cliente> datos = FXCollections.observableArrayList();
        datos.add(new Cliente("Matias","Carrasco"));
        datos.add(new Cliente("Eliana","Liberman"));
        datos.add(new Cliente("Alejandro","Stankevicius"));
        */
        tabla.setItems(datos);
        tabla.getColumns().addAll(columna1,columna2);
		return tabla;
	}
	public TableView crearTablaDetalles(ObservableList<CreadorTablas.Voto> datos){
		TableView<Voto> tabla = new TableView<Voto>();
		
		TableColumn<Voto, String> columna1 = new TableColumn<Voto,String>("Nombre");
		columna1.setCellValueFactory(new PropertyValueFactory<Voto,String>("nombre"));
		
		TableColumn<Voto, String> columna2 = new TableColumn<Voto,String>("Apellido");
		columna2.setCellValueFactory(new PropertyValueFactory<Voto,String>("apellido"));
		
		TableColumn<Voto, String> columna3 = new TableColumn<Voto,String>("Voto");
		columna3.setCellValueFactory(new PropertyValueFactory<Voto,String>("voto"));
        /*
		ObservableList<Voto> datos = FXCollections.observableArrayList();
        datos.add(new Voto("Matias","Carrasco","Negativo"));
        datos.add(new Voto("Eliana","Liberman","Positivo"));
        datos.add(new Voto("Alejandro","Stankevicius","Abstencion"));
        */
        
        
        tabla.setItems(datos);
        tabla.getColumns().addAll(columna1,columna2,columna3);
		return tabla;
	}
	public TableView crearTablaRtdos(ObservableList<CreadorTablas.Rtdo> datos){
		TableView<Rtdo> tabla = new TableView<Rtdo>();
		
		TableColumn<Rtdo, Integer> columna1 = new TableColumn<Rtdo,Integer>("Positivos");
		columna1.setCellValueFactory(new PropertyValueFactory<Rtdo,Integer>("positivos"));
		
		TableColumn<Rtdo, Integer> columna2 = new TableColumn<Rtdo,Integer>("Negativos");
		columna2.setCellValueFactory(new PropertyValueFactory<Rtdo,Integer>("negativos"));
		
		TableColumn<Rtdo, Integer> columna3 = new TableColumn<Rtdo,Integer>("Abstenciones");
		columna3.setCellValueFactory(new PropertyValueFactory<Rtdo,Integer>("abstenciones"));
		
        tabla.setItems(datos);
        tabla.getColumns().addAll(columna1,columna2,columna3);
		return tabla;
	}
	
	public static class Cliente{
		private SimpleStringProperty nombre;
		private SimpleStringProperty apellido;
		
		public Cliente(String n, String a){
			nombre = new SimpleStringProperty(n);
			apellido = new SimpleStringProperty(a);
		}
		public String getNombre(){
			return nombre.get();
		}
		public String getApellido(){
			return apellido.get();
		}
	}
	
	public static class Voto{
		private SimpleStringProperty nombre;
		private SimpleStringProperty apellido;
		private SimpleStringProperty voto;
		
		public Voto(String n, String a, String v){
			nombre = new SimpleStringProperty(n);
			apellido = new SimpleStringProperty(a);
			voto = new SimpleStringProperty(v);
		}
		public String getNombre(){
			return nombre.get();
		}
		public String getApellido(){
			return apellido.get();
		}
		public String getVoto(){
			return voto.get();
		}
	}
	
	public static class Rtdo{
		private SimpleIntegerProperty positivos;
		private SimpleIntegerProperty negativos;
		private SimpleIntegerProperty abstenciones;
		
		public Rtdo(int p, int n, int a){
			positivos = new SimpleIntegerProperty(p);
			negativos = new SimpleIntegerProperty(n);
			abstenciones = new SimpleIntegerProperty(a);
		}
		public int getPositivos(){
			return positivos.get();
		}
		public int getNegativos(){
			return negativos.get();
		}
		public int getAbstenciones(){
			return abstenciones.get();
		}
	}
}
